package com.isoft.illustrationsdraw.service;


import java.io.IOException;
import java.util.List;

import com.isoft.illustrationsdraw.brief.BriefIllustrationInfo;
import com.isoft.illustrationsdraw.dto.IllustrationDetailDTO;
import com.isoft.illustrationsdraw.dto.NewIllustrationDTO;
import com.isoft.illustrationsdraw.dto.TagDTO;
import com.isoft.illustrationsdraw.entity.Illustration;
import com.isoft.illustrationsdraw.entity.LikeIllustration;
import com.isoft.illustrationsdraw.entity.Tag;


public interface IllustrationDTOService {

    IllustrationDetailDTO attemptGetIllustrationDetailDTO(Long illustrationId, String token) throws IOException;
    boolean checkIfIllustrationCanBeAccessed(Long illustrationId, Long userId);
    Long addNewIllustrationBaseInfo(Long userId, NewIllustrationDTO newIllustrationDTO) throws RuntimeException;
    void addNewIllustrationCollection(Long illustrationId, List<String> paths);
    boolean addLikeIllustration(LikeIllustration likeIllustration);
    boolean removeLikeIllustration(LikeIllustration likeIllustration);
    List<Tag> getRecommandTag(Long userId);
    TagDTO getTagAndWork(Long userId, Long tagId, Integer page);
    List<TagDTO> initTagAndWork(Long userId);
    List<BriefIllustrationInfo> getLastestWork(Long userId, Integer page);
}
